package com.ajaxw.main;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class MailSender {

	private static final String SMTP_HOST_NAME = "smtp.163.com";
	private static final String SMTP_AUTH_USER = "resourcebase@163.com";
	private static final String SMTP_AUTH_PWD = "qwertyuo";

	// private static final String emailMsgTxt =
	// "Online Order Confirmation Message. Also include the Tracking Number.";
	// private static final String emailSubjectTxt =
	// "Order Confirmation Subject";
	// private static final String emailFromAddress = "sudhir@javacommerce.com";

	// Add List of Email address to who email needs to be sent to
	// private static final String[] emailList = { "mark@yahoo.com",
	// "robin@javacommerce.com" };

	// public static void main(String args[]) throws Exception {
	// SendEmail smtpMailSender = new SendEmail();
	// smtpMailSender.postMail(emailList, emailSubjectTxt, emailMsgTxt,
	// emailFromAddress);
	// System.out.println("Sucessfully Sent mail to All Users");
	// }

	public void postMail(String recipients[], String subject, String message,
			String from) throws MessagingException {
		boolean debug = false;

		// Set the host smtp address
		Properties props = new Properties();
		props.put("mail.smtp.host", SMTP_HOST_NAME);
		props.put("mail.smtp.auth", "true");

		Authenticator auth = new SMTPAuthenticator();
		Session session = Session.getDefaultInstance(props, auth);

		session.setDebug(debug);

		// create a message
		Message msg = new MimeMessage(session);

		// set the from and to address
		InternetAddress addressFrom = new InternetAddress(from);
		msg.setFrom(addressFrom);

		InternetAddress[] addressTo = new InternetAddress[recipients.length];
		for (int i = 0; i < recipients.length; i++) {
			addressTo[i] = new InternetAddress(recipients[i]);
		}
		msg.setRecipients(Message.RecipientType.TO, addressTo);

		// Setting the Subject and Content Type
		msg.setSubject(subject);
//		msg.setContent(message, "text/plain");
		msg.setContent(message, "text/html");
		Transport.send(msg);
	}

	/**
	 * SimpleAuthenticator is used to do simple authentication when the SMTP
	 * server requires it.
	 */
	private class SMTPAuthenticator extends javax.mail.Authenticator {

		public PasswordAuthentication getPasswordAuthentication() {
			String username = SMTP_AUTH_USER;
			String password = SMTP_AUTH_PWD;
			return new PasswordAuthentication(username, password);
		}
	}

}
